#集合
#无序
#不重复
#可以看作是一个只有key的字典

#去重： 把一个列表变成集合，自动去重
#关系测试：交集，并集，差集

#查找字符串中每个元素出现了多少次
# str1 = "wrewerwrewr233232433266645"
# my_set = set(str1)
# for i in my_set:
#     print(i, "出现次数：", str.count(i))


#集合添加
#add  update
# s = {1,2,3}
# s.add(4)
# print(s)
# s.update("abc")
# print(s)


#移除  remove未找到元素会报错
s = {1,2,3}
s.remove(2)
print(s)

#discard 未找到元素不会抛出异常
s.discard(1)
print(s)

#####类型转换
# >>> str1="123"
# >>> tuple(str1)
# ('1', '2', '3')
# >>> list(str1)
# ['1', '2', '3']
# >>> set(str1)
# {'3', '1', '2'}
# >>> dict(str1)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# ValueError: dictionary update sequence element #0 has length 1; 2 is required
# >>> tmp_list = [("a",1),("b",2)]
# >>> dict(tmp_list)
# {'a': 1, 'b': 2}
# >>> tmp_dict = {"a":2,"b":3}
# >>> tmp_dict.items()
# dict_items([('a', 2), ('b', 3)])
# >>> list(tmp_dict)
# ['a', 'b']

#并集
# >>> s1 = {1,2,3}
# >>> s2 = {2,3,4}
# >>> s1 | s2
# {1, 2, 3, 4}
# >>> s1.union(s2)
# {1, 2, 3, 4}

#交集
# >>> s1 & s2
# {2, 3}

#差集
# >>> s1 - s2  #在s1里但是不在s2里的元素
# {1}
# >>> s2 - s1  #在s2里但是不在s1里的元素
# {4}

#对称差集
#在s1或者在s2里，但是不同时存在于s1，s2中的元素
#并集减去交集
# >>> s1 ^ s2
# {1, 4}

#公司员工列表
import random
emp = ["a","b","c","d","e"]
#未收礼物人的列表
receve_list = emp[:]
#receve_list = emp.copy()

#循环去送礼物
for i in emp:
    flag = 0
    if i in receve_list:
        flag = 1
        receve_list.remove(i)
    get = random.choice(receve_list)
    receve_list.remove(get)
    print(f"{i}送给了{get}")
    if flag == 1:
        receve_list.append(i)




